unreadTVar: Extending Haskell Software Transactional Memory for Performance

نویسندگان

  • Nehir Sönmez
  • Cristian Perfumo
  • Srdjan Stipic
  • Adrián Cristal
  • Osman S. Unsal
  • Mateo Valero
چکیده

As new trends in computer architecture lead towards shared-memory chip multiprocessors (CMP), the rules for programming these machines are significantly changing. In the search for alternatives to deadlock-prone lock-based concurrency protocols, Software Transactional Memory (STM) extensions to Haskell have provided an easy-to-use lock-free abstraction mechanism for concurrent programming, using atomically composed blocks operating on transactional variables. However, as in the case for linked structures, the composition of these atomic blocks require extra attention, as the transactional management might act overconservatively by keeping track of more variables than necessary, causing an overall decrease in performance. To remedy this situation, we have extended the Transactional Memory module of the Glasgow Haskell Compiler (GHC) 6.6 to support a construct that allows the removal of a transactional variable from the readset. Although this construct that we term unreadTVar, when not applied carefully, might put the strong atomicity guarantees of STM at risk, the experimentations done with linked lists and binary trees show that it can significantly improve execution time and memory usage when traversing transactional linked structures. 1Barcelona Supercomputing Center, Barcelona/Spain; Email:{nehir.sonmez,cristian.perfumo,srdjan.stipic,adrian.cristal, osman.unsal,mateo.valero}@bsc.es 2Computer Architecture Department – Universitat Politècnica de Catalunya

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Dissecting Transactional Executions in Haskell

In this paper, we present a Haskell Transactional Memory benchmark in order to provide a comprehensive application suite for the use of Software Transactional Memory (STM) researchers. We develop a framework to profile the execution of the benchmark applications and to collect detailed runtime data on their transactional behavior. Using a composite of the collected raw data, we propose new tran...

متن کامل

Comparando o Desempenho de Implementações de Tabelas Hash Concorrentes em Haskell

An algorithm which explores performance on concurrent hash tables is far from being a non-trivial computation task. This paper presents seven hash table Haskell implementations, which include low level synchronism models to high level ones such as transactional memories. The result of the comparison between the algorithms showed that the implementation using the STM Haskell transactional memory...

متن کامل

An Update on Haskell H/STM

At TRANSACT 2014 we described plans and a preliminary implementation for a hybrid TM for the Glasgow Haskell Compiler. Here we give an update on our work and new performance results on a 72-thread Intel Haswell system showing that hardware transactional memory can improve the performance of Haskell TM at realistic scales. We describe our constant space approach to supporting transaction blockin...

متن کامل

A Hybrid TM for Haskell

Much of the success of Haskell’s Software Transactional Memory (STM) can be attributed to the language’s type system and purity, which together allow transactions to be expressed safely and precisely. By construction, transactions are free from many of the perils that other systems must work hard to avoid. Users do have to work in a constrained environment as a result, but the popularity of Has...

متن کامل

A Haskell-Implementation of STM Haskell with Early Conflict Detection

Software transactional memory treats operations on the shared memory in concurrent programs like data base transactions. STM Haskell integrates this approach in Haskell and provides combinators to build software transactions in a composable way. In previous work we introduced the process calculus CSHF as a formal model for a concurrent implementation of software transactional memory in Concurre...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2007